1. Field of the Invention
The present invention relates generally to video compression, and more specifically to a digital video encoder system and method for detecting and encoding noise.
2. Related Art
Digital video products and services and devices for storage and retrieval of video streams on the Internet are ubiquitous in the marketplace. Due to limitations in digital signal storage capacity and limitations in network and broadcast bandwidth, compression of digital video signals is essential to digital video storage and transmission. As a result, many standards for compression and encoding of digital video signals have been promulgated. These standards specify with particularity the form of encoded digital video signals and how such signals are to be decoded for presentation to a viewer.
One example of such a standard is the ISO/IEC international Standard 13818 (generally referred to as MPEG-2 format) created by the Moving Picture Experts Group (MPEG) and is described in ITU-T Recommendation H.262, ISO/IEC 13818-2: 1996 Information technology—Generic coding of moving pictures and associated audio—Part 2: Video, which document is incorporated herein by reference in its entirety. Although the MPEG-2 standard specifies a general coding methodology and syntax for generating an MPEG-2 compliant bitstream, many variations are permitted to accommodate a plurality of different applications and services such as desktop video publishing, video conferencing, digital storage media, and television broadcast. Thus, MPEG-2 allows significant discretion as to how the digital video signals are to be transformed from a native, uncompressed format to the specified encoded format. In other words, encoding steps are not rigidly defined allowing tradeoffs between video quality, compression ratio, and compute power of the encoder. As a result, many different digital video signal encoders currently exist and many approaches are used to encode digital video signals.
Referring now to FIG. 1, there is shown one example of a prior art video encoder 10. Prior art video encoder 10 operates in accordance with MPEG-2 video compression standards. Video encoder 10 includes a video input processor 12, a motion estimation processor 14, a digital signal processor 16, and a bitstream processor 18.
Video input processor 12 captures a video signal, which contains a current frame, or a plurality of current frames, to be encoded, and processes and transfers them to external pre-encoding memory unit 20. External pre-encoding memory unit 20 implements an input buffer frame (not shown) which accumulates and re-orders the frames according to the standard required for the MPEG compression scheme.
External pre-encoding memory unit 20 transfers the current frames to motion estimation processor 14. External reference memory unit 22 also transfers reference frames which have already been encoded to motion estimation processor 14. Motion estimation processor 14 reads and compares both sets of frames, analyzes the motion of the video signal and transfers the motion analysis to digital signal processor 16.
Digital signal processor 16 receives the current frames from the external pre-encoding memory 20, and according to the motion analysis received from motion estimation processor 14, processes and compresses the video signal. Digital signal processor 16 then transfers the compressed data to the bitstream processor 18. Digital signal processor 16 further reconstructs the reference frame and stores it in reference memory 22.
Bitstream processor 18 encodes the compressed data and transfers an encoded video bitstream to external post-encoding memory unit 24. External post-encoding memory unit 24 implements an output buffer (not shown) which stores the encoded video bitstream before it is transferred out of the encoder 10 to a target device.
During operation of an encoder, it is inevitable that some noise is presented to the input of the encoder. For example, when a TV is used as a source for the encoder, a temporal noise appears on the TV screen when the TV channel is switched. Such noise includes very high frequencies in the spatial domain. Encoding very high frequencies with MPEG-2 requires a very high (peak) bit rate. A very high or peak bit rate causes the output buffer to overflow which in turn causes the encoder to stop functioning. Therefore, what is needed is a system and method for detecting noise to avoid or reduce this peak bit rate and maintain a reasonable bit rate in order to prevent the encoder from halting.
One possible solution would be to eliminate these very high frequencies before encoding the noise. However, the problem with this solution is that there are many video sources with high frequencies. Eliminating high frequencies of certain video sources reduces image quality. Therefore, what is needed is a system and method for detecting and distinguishing noise from a video source with high frequencies before encoding it.
Additionally, many MPEG-2 encoding applications are real-time. In other words, after one macroblock is encoded, the next macroblock must be processed. It is not possible to analyze the whole frame before encoding it. Therefore, it is also desirable to have a system and method for detecting and encoding noise in a single pass.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art through comparison of such systems with the present invention as set forth in the remainder of the present application and with reference to the drawings.